Skip to content

c3pr/c3pr

Repository files navigation

C-3PR

C-3PR is a static analysis bot. It is part of a Software Engineering research project on UnB.

The work developed here has been published in the 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER).

C-3PR Main Actors

To automatically generate code fixes and transformations, C-3PR first listens for commit notifications from the source code platform. Second, it spawns an execution environment for the project and invokes the static analysis tools in the changed files only. If issues/transformations are found/generated, the bot creates PRs containing the fixes. These PRs also include descriptions of what issue has been addressed and why.

x

Packages/Microservices

C-3PR is a distributed system. Several microservices communicate via an event-driven interface. Other than the dasboard, which has a dedicated snapshot store, all events in the system are saved as-is, and all the applications (e.g. C-3PR Brain) work in an event-sourced style.

x

Package/Service Name Description Port Travis Build
c3pr-hub Central Events/Auth registry 7300 Travis
c3pr-brain PR/Projects Intelligence 7301 Travis
c3pr-dashboard-ui Centralized UI Frontend 7305 Travis
c3pr-dashboard Centralized UI BFF 7305 Travis
node-c3pr-hub-client Reusable lib - Travis
node-c3pr-logger Reusable lib - Travis
node-git-client Reusable lib: Node.js layer on top of shell git command line - Travis
node-c3pr-repo [x] Reusable functions for repo implementations - Travis
c3pr-repo-github Repo adapter implementation for GitHub 7302 Travis
c3pr-repo-gitlab Repo adapter implementation for GitLab 7304 Travis
c3pr-agent Agent for tool containers 7303 Travis
c3pr-tool-walkmod-sonar Tool implementation 7303 -
c3pr-tool-eslint-tslint-custom-rules Tool implementation 7303 -
environment (folder) Scripts for setting up the (dev, prod) environments.
docs (folder) General docs.

C-3PR Workflow

x

About

C-3PR is a bot that runs static analysis tools and provides automatic source code fixes and transformations via PRs.

Topics

Resources

License

Stars

Watchers

Forks

Contributors